Eucalyptus環境を使ってみる(その7) ~ euca-run-instances ~
今回はキーペアの作成から始めます
インスタンスを起動してsshで接続するためにはキーペアを作成する必要があるためキーペアを作成します。
euca-add-keypair key02 > ~/.euca/admin/keypairs/key02.pk chmod 400 ~/.euca/admin/keypairs/key02.pk
作成したキーペアを以下のコマンドで確認します。
euca-describe-keypairs
インスタンスを起動してsshで接続するためにはセキュリティグループも設定する必要があります。Eucalyptusではユーザーごとにdefaultという名前のセキュリティグループが1つ用意されていますが、最初は何も設定されていないためsshを利用できるように設定します。
euca-authorize –P tcp –p 22 –s 192.168.1.0/22 default
これでようやく一通りの設定は完了です。
それでは実際に作成したマシンイメージを起動してみます!やっとここまで来たかw
(マシンイメージ:emi-330511C7)
cd ~/.euca/admin/keypairs euca-run-instances –k key02 –t m1.small –n 1 emi-330511C7 watch –d euca-describe-instances
でインスタンスの起動を確認しようと思いましたが、、、いっこうにpendingのままステータスが変らない><
結局1時間放置した状態でも結果がpendingのままなので、何か問題があるのだと思い調査開始したもののCLC/CC側のログを見てみてもよくわからん。
で、Node Controller側のログ(nc.log)を見てみると、Walrusへのリクエストでエラーになっていました。(192.168.1.159に対してUnreachable)
ということでNode Controller側のネットワーク設定を変更
デフォルトゲートウェイをCloud ControllerのIPアドレスに設定変更(ここでは10.100.0.1)
これで一旦Node Controllerのサービスを再起動。
念のためCLC/CC側のサービスも再起動
NC側
/etc/init.d/network restart /etc/eucalyptus-nc restart
CLC/CC側
/etc/eucalyptus-cc restart /etc/eucalyptus-cloud restart
で、再度インスタンスを起動してみる
cd ~/.euca/admin/keypairs euca-run-instances –k key02 –t m1.small –n 1 emi-330511C7
これで起動するかと思いきや、、、
FinishedVerify: Not enough resources available: addresses (try --addressing private)となってしまいました。
メッセージの通り、--addressing privateのオプションを付けてインスタンスを起動してみた。
euca-run-instances –k key02 –t m1.small --addressing private –n 1 emi-330511C7 watch –d euca-describe-instances
しばらくして、ようやくrunningになって無事起動しました。。。
しかし、これではpublic IPが振られないので、意図した起動状態ではありません><
ちょっと調べてみたらeucalyptus.confの設定の中にVNET_PUBLICIPSの項目がありましたw
これ設定してないからNot enough resources available: addressesになるんですね。。。
早速、CLC/CC側のeucalyptus.confをviで編集してみます。
205行目あたりのVNET_ADDRSPERNETを指定します。
VNET_ADDRSPERNET=”64”
206行目あたりのVNET_PUBLICIPSを指定します。
VNET_PUBLICIPS="192.168.3.1 192.168.3.2 192.168.3.3 192.168.3.4 192.168.3.5 192.168.3.6 192.168.3.7"
上は192.168.3.1~192.168.3.7まで指定していますが、192.168.3.64まで実際は指定(半角スペース区切り)しています。
VNET_PUBLICIPS="192.168.3.1-192.168.3.64"
という指定でもいいかもしれませんが、あえて1個ずつ指定しています。
再度CLC/CC側のサービスを再起動して、インスタンスを起動
CLC/CC側
/etc/eucalyptus-cc restart /etc/eucalyptus-cloud restart euca-run-instances –k key02 –t m1.small –n 1 emi-330511C7
これで大丈夫だろうと思ったが、、、
またFinishedVerify: Not enough resources available: addresses (try --addressing private)となってしまいました。
う~ん、手詰まりです。。。いろいろ調査してみても同じ様なメッセージで起動しない方がいっぱいおられるようです。
--addressing privateをつければ起動、つけなければエラー。設定の間違いしか無いように思えます
という事でいろいろ試してみましたが、結果は同じでした。基本に戻り1.6のマニュアルを見てみたら、下記の記述があった。
WARNING : If you edit a networking related value in eucalyptus.conf, you will need to perform a clean restart of the CC($EUCALYPTUS/etc/init.d/eucalyptus-cc cleanrestart) for changes to take effect. Make sure to terminate all VM instances before performing the clean restart.
そういえばVNET_MODEを”SYSTEM”から”MANAGED”に変えたり”MANAGED”から”MANAGED-NOVLAN”に変えたりVNET_ADDRSPERNETを追加したり試行錯誤してたので、ダメもとでクリーンリスタートさせました。ってかcleanrestartって何なんだ???まぁ深く考えずにネットワークに関連する設定を変更したら必要と割り切りますw
ダメもとで再度下記コマンドで期待通りに立ち上がるかを試してみました。
/etc/eucalyptus-cc stop /etc/eucalyptus-cloud stop /etc/eucalyptus-cc cleanrestart /etc/eucalyptus-cloud start euca-run-instances –k key02 –t m1.small –n 1 emi-330511C7 RESERVATION r-4313080B admin default INSTANCE i-46F708A9 emi-330511C7 192.168.3.1 10.0.2.2 running key02 0 m1.small 2011-08-03T05:50:34.196Z cluster1 eki-5DAF1247 eri-5882121E
なんと!public IPが割り振られ(192.168.3.1)、インスタンスまで起動が確認できました。
ふ~、ここまでたどり着くのに3時間くらいかかってしまったが、期待通り起動できたので今日はこの辺で終わり